package com.feixiu.dao;

import com.feixiu.pojo.ApprovalRecords;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ApprovalRecordsDao {
    /**
     * 这个方法是根据一申请人的编号，查询所有的记录
     * @param staffno 申请人编号
     * @return
     */
    List<ApprovalRecords> selectAllRecordsByStaff(@Param("staffno") String staffno);

    /**
     * 这个是根据   审批人名字，查询所有的申请记录
     * @param staffno 审批人编号
     * @return
     */
    List<ApprovalRecords> selectAllRecordsByApproval(@Param("staffno") String staffno);

    /**
     * 这个是根据记录号   查询第一个没有审批该申请的审批人
     * @param recordno  记录号
     * @return     审批人编号
     */
    ApprovalRecords selectUnApprovalno(@Param("recordno") String recordno);

    /**
     * 根据当前记录，获取这个申请，所有已经被审批的记录（我控制的，当前的这个recordno必然是没有审批的第一个记录，所以它之前的都是审批过的）
     *
     * @param recordno  当前记录号
     * @return  返回记录列表
     */
    List<ApprovalRecords> selectFinishApproval(@Param("recordno") String recordno);

    /**
     * 根据参数，更改记录，这个是同意审批的（只需要更改当前的记录）
     * @param approvalRecords
     * @return
     */
    int updateAgree(ApprovalRecords approvalRecords);

    /**
     * 根据参数，更改记录，这个是拒绝审批的（需要更改申请的所有记录）
     * @param approvalRecords
     * @return
     */
    int updateFail(ApprovalRecords approvalRecords);

    /**
     * 插入到审批记录表中
     * @param approvalRecords
     * @return 返回插入行数
     */
    int insert(ApprovalRecords approvalRecords);

    /**
     * 根据旧的mainrecord来设置新的mainrecord。以后在springboot的实验中看看怎么解决一下
     * @param mainRecord  新的mainrecord
     *
     * @param old     旧的mainrecordno
     *
     */
    int setMainRecord(@Param("mainrecord") String mainRecord,@Param("old") String old);

}
